package io.renren.modules.yckj.dao;

import io.renren.common.dao.BaseDao;
import io.renren.modules.yckj.entity.UserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;

/**
 * 用户表
 *
 * @author Mark sunlightcs@gmail.com
 * @since 1.0.0 2025-04-17
 */
@Mapper
public interface UserDao extends BaseDao<UserEntity> {

    UserEntity getUserByMobile(String mobile);

    UserEntity getUserByOpenId(String openId);

    UserEntity getUserByUserId(Long userId);

    /**
     * 更新余额
     * @param userId 用户Id
     * @param balance 余额
     * @return 是否成功
     */
    boolean updateBalance(@Param("userId") Long userId, @Param("balance") BigDecimal balance);

    /**
     * 更新欠款
     * @param userId 用户Id
     * @param debtLimitUse 欠款
     * @return 是否成功
     */
    boolean updateDebtLimitUse(@Param("userId") Long userId, @Param("debtLimitUse") BigDecimal debtLimitUse);

    /**
     * 更新余额和欠款
     * @param userId 用户Id
     * @param balance 余额
     * @param debtLimitUse 欠款
     * @return 是否成功
     */
    boolean updateBalanceAndDebtLimitUse(@Param("userId") Long userId, @Param("balance") BigDecimal balance, @Param("debtLimitUse") BigDecimal debtLimitUse);

}